/*
  学习目标：Route路由匹配规则

  步骤：
     1. Route路由默认规则 - 模糊匹配
        1. 从上到下，匹配到的组件都会渲染出来 - 跟 vue 不同
        2. 每个Route都是自己的规则，互不影响
     2. Route组件匹配任意路径的两种方式
        1. 匹配 / 作首页，那么所有的路径都会模糊匹配上，所以建议加exact
        2. 匹配任意路径
          a. path写/,不带精准匹配
          b. 不写path，这时候exact不再生效
*/
import React from 'react';
import './base.css';

// import { HashRouter as Router, Route, Link } from 'react-router-dom';
import { BrowserRouter as Router, Route, NavLink } from 'react-router-dom';
export default class App extends React.Component {
  render() {
    return (
      <>
        <Router>
          <NavLink activeClassName="myActive" to="/" exact>
            首页
          </NavLink>
          <br />
          <NavLink activeClassName="myActive" to="/my">
            我的
          </NavLink>
          <br />
          <NavLink activeClassName="myActive" to="/friend">
            朋友
          </NavLink>

          {/* 1. 从上到下，匹配到的组件都会渲染出来 */}
          {/* <Route path="/" component={Home} exact></Route> */}
          {/* 匹配任意路径：1. 路径写/,不带精准匹配， */}
          {/* <Route path="/" component={Home}></Route> */}

          {/* 匹配任意路径：2. 不写path，这时候exact不再生效 */}
          <Route component={Home}></Route>

          <Route path="/my" component={MyMusic}></Route>
          <Route path="/friend" component={Friend}></Route>
        </Router>
      </>
    );
  }
}

function Home() {
  return <h1>我是首页组件</h1>;
}

function MyMusic() {
  return <h1>我是我的音乐组件</h1>;
}

function Friend() {
  return <h1>我是朋友组件</h1>;
}
